package com.epin.util;

import java.math.BigDecimal;
import java.util.regex.Pattern;

public class RateTools {
	
	
	public static final String REGULAR_EXPRESSION_PRECENTAGE="^\\d+\\.?\\d*\\%?$";
	
	
	
	/**
	 * 0.023的BigDecimal类型转化成2.3的BigDecimal类型
	 * 
	 * @param value
	 * @return
	 */
	public static BigDecimal convertBigDecimalIntoPercentage(BigDecimal value)
	{
		BigDecimal bigdecm100=new BigDecimal(100);
		BigDecimal result=bigdecm100.multiply(value);
		return result;
	}
	
	/**
	 * 0.023的BigDecimal类型转化成2.3%的String类型
	 * 
	 * @param value
	 * @return
	 */
	public static String convertBigDecimalIntoPercentageText(BigDecimal value)
	{
		BigDecimal bigdecm100=new BigDecimal(100);
		BigDecimal result=bigdecm100.multiply(value);
		String str=String.valueOf(result)+'%';
		return str;
	}
	
	
	
	/**
	 * 
	 * 将2.3%的String类型转化成0.023的BigDecimal类型
	 * 
	 * @param value
	 * @return
	 */
	public static BigDecimal convertPercentageTextIntoBigDecimal(String value)
	{
		BigDecimal resultTemp=null;
		BigDecimal result=null;
		BigDecimal bigdecm100=new BigDecimal(100);
		boolean judgePercentageTextResult=false;
		//
		//判断是不是百分数
		judgePercentageTextResult=RateTools.judgePercentageText(value);
		if(judgePercentageTextResult==false)
		{
			System.err.println("convertPercentageTextIntoBigDecimal is illegal");
			return null;
		}
		else if(judgePercentageTextResult==true)
		{
			//去掉最后的百分数 符号'%'
			resultTemp=BigDecimal.valueOf(Double.valueOf(value.substring(0,value.length()-1)));
			//除以100
			result=resultTemp.divide(bigdecm100);
			System.out.println("ggresult:"+result);
			return result;
		}
		return result;
	}
	
	/**
	 * 
	 * 将2.3的BigDecimal类型转化成0.023的BigDecimal类型
	 * @param value
	 * @return
	 */
	
	
	public static BigDecimal convertPercentageIntoBigDecimal(BigDecimal value)
	{
		BigDecimal bigdecm100=new BigDecimal(100);
		BigDecimal result=null;
		
		result=value.divide(bigdecm100);
		//System.out.println("ggresult:"+result);

		return result;
	}
	
	
	
	public static boolean judgePercentageText(String value)
	{
		return Pattern.compile(RateTools.REGULAR_EXPRESSION_PRECENTAGE).matcher(value).matches();
		
	}
	
}
